// #include <stdio.h>

// int main()
// {
//     float a,b,c;
//     scanf("%f %f %f",&a,&b,&c);
//     printf("%.3f %+.2f %05.0f",a,b,c);
//     return 0;
// }

// #include <stdio.h>
// #include <stdlib.h>
// //10进制输入，输出二进制数
// int main()
// {
//     unsigned short int a=0;
//     char output[17]={0};
//     int i = 0;
//     scanf("%d",&a);
//     for(i=15;i>=0;i--)
//     {
//         output[i] = '0' + (a%2);
//         a/=2;
//     }
//     output[16]='\0';
//     printf("%s",output);

//     return 0;
// }



#include<stdio.h>
int main()
{
    int n=0;
    long long int sum=0,p=1;//n为十进制数，sum为每一位计算所加的和，p为位权
    scanf("%d",&n);//输入该十进制数
    while(n)//循环条件为n，即在十进制数n不为0的时候程序一直成立
        {
        sum+=(n%2)*p;//数字中所有位乘以本位的位权再加和
        p*=10;//位权随着位的变化依次增加
        n/=2;//进行下一位的输出
    }
    printf("%016lld\n",sum);
        return 0;
}